package com.zr.dao;

import java.util.List;

import com.zr.model.Employee;
import com.zr.model.Leave;
import com.zr.model.PersonData;
import com.zr.model.ResignDtp;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public interface HRDaodtp {
	/**
	 * 注册新员工
	 * @param ename 姓名
	 * @param eage	年龄
	 * @param esex	性别
	 * @param enation	民族
	 * @param eaddress	地址
	 * @param eeducation	学历
	 * @param eintime	入职时间	
	 * @param eposition	职位
	 * @param eremark	备注
	 * @param did	部门编号
	 * @return 添加成功（true）或者失败(false)
	 */
	public int addUser(String ename,int eage,String esex,String enation,String eidcard,String eaddress,String eeducation,String eintime,String eposition,String eremark,int did,String ephone);
	/**
	 * 获取部门下拉列表框中的部门名
	 * @return 所有部门名（JSONArray）
	 */
	public List<String> getSelectDid();
	/**
	 * 统计员工个数
	 * @return 员工总个数
	 */
	public int getEmplsCount(String name);
	/**
	 * 
	 * @param page 当前页码
	 * @param rows	每页显示的条数
	 * @return	当前页员工的集合
	 */
	public List<Employee> getEmpls(int page,int rows,String name);
	/**
	 * 
	 * @param departement 部门
	 * @param position	职位
	 * @return true(成功) false(失败)
	 */
	public boolean ChangeJob(int eid,String departement,String position);
	/**
	 * 获取所有请假员工总数
	 * @return 员工总数
	 */
	public int getLeavesCount(String state);
	/**
	 * 
	 * @param page
	 * @param rows
	 * @return 当前页面请假员工的集合
 	 */
	public List<Leave> getleaves(int page,int rows,String state);
	/**
	 * 通过员工编号删除员工
	 * @param eid 员工编号
	 * @return true(成功)false(失败)
	 */
	public boolean delEmpl(int eid);
	/**
	 * 
	 * @param eid 请假单号
	 * @return 员工请假申请信息
	 */
	public Leave getListById(int id);
	/**
	 * 
	 * @param id 请假号
	 * @param opinion	审核意见（同意or不同意）
	 * @param retime 审核时间
	 * @param remake 备注
	 * @return true(成功)false(失败)
	 */
	public boolean subVacation(int id,String opinion,String retime,String remake);
	/**
	 * 获取员工总人数(ygrz)
	 * @return 总人数
	 */
	public int findAllCount(String name);
	/**
	 * 根据page和rows获取员工信息(ygrz)
	 * @return 当前page页员工信息
	 */
	public List<PersonData> getAll(int page,int rows,String name);
	/**
	 * 
	 * @param eid 员工id
	 * @param mname 修改的姓名
	 * @param mage 修改后的年龄
	 * @param meducation 修改后学历
	 * @param mdizi
	 * @param mphone
	 * @return
	 */
	public boolean editEmpl(int eid,String mname,int mage,String meducation,String mdizi,String mphone);
	/**
	 * 
	 * @param state 审核状态
	 * @return	符合条件的信息条数
	 */
	public int resignCount(String state);
	/**
	 * 
	 * @param state 审核状态
	 * @param page 当前页码	
	 * @param rows	信息条数
	 * @return	显示信息List
	 */
	public List<ResignDtp> getResign(String state,int page,int rows);
	/**
	 * 
	 * @param id 离职单号
	 * @return 离职数据
	 */
	public ResignDtp getResignData(int id);
	/**
	 * 
	 * @param id 离职单号
	 * @param opinion 审核意见
	 * @param retime 审核时间
	 * @param remark 备注
	 * @return true(提交成功)false（提交失败）
	 */
	public boolean checkResign(int id,String opinion,String retime,String remark);
	/**
	 * 
	 * @param id 请假单号
	 * @return true（成功）
	 */
	public boolean delResign(int id);
	/**
	 * 
	 * @param id 请假申请单号
	 * @return true(成功)
	 */
	public boolean delVacation(int id);
	
	
}
